#pragma once
#ifndef CONTOURSEXTRACTOR_H
#define CONTOURSEXTRACTOR_H

#include <QVector3D>
#include <QMatrix4x4>
#include <QVector>
#include <QtMath>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <list>
#include <utility>
#include <QMap>
#include <QSet>
#include <QHash>
#include <QFile>
#include <QQueue>

#include <execution>

#include "ModelFormation.h"

void g0(const Triangle& in_triangle, const QVector3D& in_plane_norm, float in_lambda, Edge& out_edge);
QVector<Triangle> h0(const QVector<Triangle>& model_triangles, const QVector3D& plane_norm, float lambda);
void h1(const QVector<Triangle>& in_model_triangles, const QVector3D& in_plane_norm, float in_lambda, QVector<Edge>& links);
void h2(const QVector<Edge>& links, QVector<QVector<Vertex>>& contours);

#endif // CONTOURSEXTRACTOR_H
